package com.grad.webstudy.dao;

import com.grad.webstudy.dto.CourseTypeDto;
import com.grad.webstudy.model.CourseType;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;


@Repository
public interface CoursetypeDao {
    int deleteByPrimaryKey(Integer id);


    int insertSelective(CourseType record);

    CourseType selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(CourseType record);

    int updateByPrimaryKey(CourseType record);


    /**
     * 增加课程分类
     * @param courseType
     * @return
     */
    int insert(CourseType courseType);


    /**
     * 根据id集合删除课程分类信息
     * @param ids
     * @return
     */
    int deleteCourseTypeByIds(List<String> ids);


    /**
     * 更新课程信息
     * @param courseType
     * @return
     */
    int updateCourseType(CourseType courseType);


    /**
     * 查询全部分类信息
     * @return
     */
    List<CourseType> selectAllCourseType();


    /**
     * 查询全部方向
     * @return
     */
    List<CourseType> queryDireType();


    /**
     * 根据id查询分类名称
     * @param ids
     * @return
     */
    List<String> selectCourseTypeNameByIds(List<String> ids);


    /**
     * 根据父id查询子类型
     * @param parentId
     * @return
     */
    List<CourseType> queryChildType(Integer parentId);


    /**
     * 根据不同type查询
     * @param type
     * @param keyword
     * @return
     */
    List<CourseType> queryTypeByType(@Param("type") Integer type,
                                     @Param("keyword") String keyword);


    /**
     * 查询全部子类别
     * @return
     */
    List<CourseType> queryAllChild();



    /**
     * 根据子类id查询父类id
     * @param childId
     * @return
     */
    Integer queryParentId(Integer childId);


    Integer queryTypeByKeyword(String keyword);
}